-- invincible
-- created by chendh
-- 天空战附加属性：天空战免疫所有伤害属性
-- ([round:3])代表前3回合免疫所有伤害
-- ([rate:200])代表每次受创20%概率免疫所有伤害

return {
    -- 空属性
    getEmptyProp = function()
        return {};
    end,

    -- 合并属性
    mergeSkyProp = function(data, addon)
        local result = {};

        if not data then
            result = table.deepcopy(addon);
        else
            result = table.deepcopy(data);

            for style, value in pairs(addon) do
                if style == "round" then
                    -- 前几回合免疫所有伤害的话，则取最大回合数
                    result[style] = math.max(value, result[style] or 0);
                else
                    -- 每次受创概率免疫删伤害的话则累加概率
                    result[style] = value + (result[style] or 0);
                end
            end
        end

        return result;
    end,

    getDesc = function(desc, data)
        local desc = "";
        local keys = table.keys(data);
        local value;

        -- 目前只需处理一条
        for _, key in ipairs(keys) do
            if key == "rate" then
                desc = getLocStr("shipskill_invincible_rate");
                desc = string.gsub(desc, "{rate}", math.modf(data[key] / 10), 1);
                break;
            end
        end

        return desc;
    end,
};